#!/usr/bin/python3
# -*- coding: utf8 -*-
# Date   : 2021/02/12
# Author : Kwan
# Email  : allenxian@live.com
# Blog   : https://my.oschina.net/u/4173440

from flask import Blueprint, request, json, jsonify
from flask_login import current_user, login_required
from flasky.common import app_logger


# 接口功能
interface = Blueprint(name='interface', import_name='flasky', url_prefix='/interface', template_folder='views/templates')


@interface.route('/system', methods=['POST'])
@login_required
def system():
    """
    系统接口
    """
    try:
        # 检查数据类型
        p_data = request.get_json()
        if not isinstance(p_data, dict):
            p_data = json.loads(p_data)
        app_logger.debug(f"system 接口数据：{current_user.LoginName} => {p_data}")
        cb = p_data.get('CallBack')
        if cb:
            if cb == "Restart":
                return jsonify(**{'icon': 'warning', 'text':'服務即將重啓，請稍後重新登入系統！'})
            elif cb == 'Reboot':
                return jsonify(**{'icon': 'warning', 'text':'系統即將重啓，請等待系統重新啓動！'})
            elif cb == 'Halt':
                return jsonify(**{'icon': 'warning', 'text':'系統即將關閉，服務將不可用！'})
    except Exception as e:
        app_logger.error(f"解析数据错误：{p_data}，原因：{e}")
    return jsonify(**{'icon': 'error', 'text':'請求錯誤，請聯係管理員'})


@interface.route('/user_info', methods=['POST'])
@login_required
def user_info():
    """
    当前用户接口
    """
    try:
        # 检查数据类型
        p_data = request.get_json()
        if not isinstance(p_data, dict):
            p_data = json.loads(p_data)
        app_logger.debug(f"user_info 接口数据：{current_user.LoginName} => {p_data}")
        cb = p_data.get('UpdateUser')
        if cb:
            return jsonify(**{'icon': 'success', 'text':'用戶更新成功！'})
    except Exception as e:
        app_logger.error(f"解析数据错误：{p_data}，原因：{e}")
    return jsonify(**{'icon': 'error', 'text':'請求錯誤，請聯係管理員'})
